--[[
描述 ： 滚动视图容器 文件
作者 ： 付大志
修改 ： jwg- qt
时间 ： 15/03/06
]]
 

--[[
类 ： ScrollView  滚动视图容器 扩展类
]]
MLScrollView = Class(MLView, 'MLScrollView'); 
MLScrollView.mlistView=nil;
MLScrollView.mChilds=nil;
MLScrollView.isHorizontal=nil;

--[[功能：   初始化 滚动视图实例
参数：	w	视图宽度
参数：	h	视图高度
参数：	isHorizontal	是否横向滚动，默认 垂直滚动
返回：	滚动视图实例
]] 
function  MLScrollView:initScrollView(w, h, isHorizontal,viewCtrl,id)  
	if w==nil then
		print('warning:MLScrollView:initScrollView, argument 1 is nil!');
		return;
	end	
	if type(w) ~= 'number'  then
		print('warning:MLScrollView:initScrollView, argument 1 type is not number!');
		return;
	end 
	if h==nil then
		print('warning:MLScrollView:initScrollView, argument 2 is nil!');
		return ;
	end	  
	if type(h) ~= 'number'  then
		print('warning:MLScrollView:initScrollView, argument 2 type is not number!');
		return;
	end  
	if type(isHorizontal) ~= 'boolean'  then
		print('warning:MLScrollView:initScrollView, argument 3 type is not boolean!');
		return;
	end
	    w  = w or 0;
	    h =  h or 0; 
	    self.isHorizontal=isHorizontal or false
		self:initView(w, h, viewCtrl, id)
	    self.mChilds = {};
	    self.mlistView  = MLMyScrollView:new(w,h);
	    self.mHashCode = self.mlistView:scrollViewGetHashcode();
	    qtEvent[self.mHashCode]=self;

	    if self.isHorizontal==true then 
			self.mlistView:setLayoutDirec(1);--0 is vertical layout direction
		else
			self.mlistView:setLayoutDirec(0);--0 is vertical layout direction
		end
		self.mInstance:groupAddChildScrollView(self.mlistView , 1, 0, 0);
		return self;
end 

 --[[
功能：   添加视图
参数：	view	视图宽度
参数：	h	视图高度
参数：	isHorizontal	是否横向滚动 true:是 false: 否 默认 垂直滚动
参数：	index	默认顺序添加， index大于总个数添加到尾部 小于总个数插入响应位置 。 以1为开始索引
返回：	无
]] 
function  MLScrollView:add (view) 
	if view.weekTable.mParent then
		view.weekTable.mParent:del(view);
	end
	view.weekTable.mParent = self;
	
	local index = self.mlistView:listAddChild(view.mInstance, index or -1);

	table.insert(self.mChilds, index, view);
end 

 --[[
功能：   删除视图
参数:	view 视图	
返回:	个数
]] 
function  MLScrollView:del (view)
	if  not view then return end 
	self.mlistView:listDelChild(view.mInstance);
    view.weekTable.mParent = {};
end 

 --[[
功能：   删除全部视图
参数:	无	
返回:	个数
]] 
function  MLScrollView:delAll ()
	self.mlistView:listDelAll();
    self.mChilds = {};
end 

 --[[
功能：   得到视图个数
参数:	无	
返回:	个数
]] 
function  MLScrollView:getCount ()
	return #self.mChilds;
end 

 --[[
功能：   根据index得到子view
参数：	index	索引
返回：	view
]] 
function  MLScrollView:getViewOfIndex (index)
	if not index then return end
	return self.mChilds[index];
end 

 --[[
功能：   根据子view 得到index
参数：	view	子视图
返回:	索引
]] 
function  MLScrollView:getIndexOfView (view)
	if not view then return end
	for k, v in ipairs(self.mChilds) do
		if v == view then
			return k;
		end
	end
end 

 --[[
功能：   设置滚动位置
参数：	pos	位置
返回：	无
]] 
function  MLScrollView:setScrollPos (pos)
	if pos == nil then return end
	self.mlistView:listSetScrollPos(pos);

end 

 --[[
功能：   得到当前滚动位置
参数：	无	
返回：	位置
]] 
function  MLScrollView:getScrollPos ()
	return self.mlistView:listGetScrollPos();

  -- 待扩展
end 

--[[
功能：	设置是否隐藏滚动条
参数：	hidden 布尔类型：ture，隐藏；false，显示【默认显示】
返回：	无
]]
function MLScrollView:setBarsHidden( hidden )
	--[[if self.isHorizontal==true then
		return self.mlistView:hlistSetScrollBarsEnabled(hidden);
	else	
		return self.mlistView:listSetScrollBarsEnabled(hidden);
	end]]
end




--function qt_event_showEvent(hashcode)
	--print("qt_event_showEvent====================================")
	--[[if qtEvent[hashcode]~=nil then 		
		local tmpJson = qtEvent[hashcode].onCellTemplate();
		print(tmpJson)
		local xxx = MLNative.json(tmpJson);
		--xxx.
	    print("HHHHHHHHHHHH",xxx.items[1].height);

	end ]]
--end

